1/1
Bug when wishbone bus is busy
by huanygs on Aug 10, 2012 |
huanygs
Posts: 2 Joined: Jul 30, 2010 Last seen: Nov 29, 2018 |
||
When packet A was writing to memory, packet B arrived.
A's tail was replaced by B's head. B lost his head. A and B were silently and wrongly wrote. If memory is shared by ethmac and other busy masters, ethmac occasionally can't finish the writing of A before next packet B coming in. At this state, I think A should be abort, mark A as overrun, and keep B as one piece. I heard some one said, ethmac has some problems on heavily load, maybe this is the reason.
ethmac_bug.jpg (297 kb)
|
RE: Bug when wishbone bus is busy
by huanygs on Aug 17, 2012 |
huanygs
Posts: 2 Joined: Jul 30, 2010 Last seen: Nov 29, 2018 |
||
I reconfigured the testbench, intend to trigger the problem.
------------------------------------------------------ cd scripts gmake cop_rtl-tests VCD=1 gtkwave ../build/sim/ethmac.vcd wishbone_bus.sav ------------------------------------------------------ Pay attention to "wb_dat_i" @14885ns. FIFO be resetted while writing is not finished yet. I can not find out an easy way (just change several lines) to fix the problem. It seems the assumption (A can write all bytes back to memory before B comes) is an very essential assumption crossed whole eth_wishbone.v . Have to reconstruct eth_wishbone.v to wipe out the problem ? Any comment ? BTW. Eth_wishbone.v is not very efficiency on burst. You can see it in vcd.
ethmac_bug.tgz (1050 kb)
|
1/1